// 将json array对象转换为csv的文本，默认分隔符：\t，换行符 \r\n
export function JsonToCsvText(data, separator = '\t', lf = '\r\n') {
  let res = ''
  data.forEach((element) => {
    for (let i in element) {
      res = res + element[i] + separator
    }
    res = res.substring(0, res.lastIndexOf(separator))
    res = res + lf
  })
  return res
}

// 将csv的文本转换为json array对象，默认分隔符：\t，换行符 \r\n , array对象格式：[{f0: '',f1: '',f3: ''...},...]
export function CsvTextToJson(
  data,
  separator = '\t',
  lf = '\r\n',
  fieldPrefix = 'f'
) {
  let res = []
  data = data + ''
  data.split(lf).forEach((element) => {
    if (element !== '') {
      let obj = {}
      element.split(separator).forEach((e, index) => {
        obj[fieldPrefix + index] = e
      })
      res.push(obj)
    }
  })
  return res
}

// 将数据表示转换为数据库类型和长度
export function toDbType(str) {
  if (str.indexOf('c') === 0) {
    let len = str.match(/[0-9]+/)
    return ['varchar', len[0]]
  }
  if (str.indexOf('n') === 0) {
    if (str.indexOf('(') < 0) {
      let len = str.match(/[0-9]+/)
      return ['int', len[0]]
    } else {
      let len = str.match(/[0-9]+,[0-9]+/)
      return ['decimal', len[0]]
    }
  }
  if (str === 'date') {
    return ['date', '']
  }
}
